/***************************************************************
*  Copyright (c) 2007 by GroupMe! Team (www.groupme.net)
*  All rights reserved
*
*  This file is part of the GroupMe! Project. You can utilize
*  software of the GroupMe! project under the terms of the 
*  GNU Lesser General Public License as published by the
*  Free Software Foundation in version 2.1.
* 
*  The GNU Lesser General Public License can be found at:
*  http://www.gnu.org/licenses/lgpl.html
*
*  This copyright notice MUST APPEAR in all copies of the file!
***************************************************************/
package net.groupme.utils.sql;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.sql.DataSource;

import net.groupme.model.Group;
import net.groupme.model.ObjectFactory;

import org.springframework.jdbc.object.MappingSqlQuery;

/**
 * 
 * This class provides...
 * This interface defines...
 * 
 * @author  Mischa Frank, <a href="mailto:code@planetfrank.net">code@planetfrank.net</a>
 * 
 * @version 0.1a, created on 14.05.2007 
 *
 */

public class GetGroupsQuery extends MappingSqlQuery {
	private DataSource datasource;
	private String columnName;
	public GetGroupsQuery(DataSource ds, String query, String columnName) {
        super(ds, query);
        this.datasource = ds;
        this.columnName = columnName;
        compile();
    }

    protected Object mapRow(ResultSet rs, int rowNum) throws SQLException {
        List<Group> groups = new ArrayList<Group>();
         while (!rs.isAfterLast()){
             Group group = ObjectFactory.getGroup(rs.getString(columnName));
        	 groups.add(group);
        	 rs.next();
        }
    	return groups; 
    }

}
